import PyInstaller.__main__
import os
import sys

# 获取当前目录
current_dir = os.path.dirname(os.path.abspath(__file__))

# 设置打包参数
options = [
    'main.py',  # 主程序文件
    '--name=OneNET分组批量操作工具V1.3',  # 生成的exe名称
    '--windowed',  # 使用GUI模式
    '--onefile',  # 打包成单个文件
    '--clean',  # 清理临时文件
    '--noconfirm',  # 不确认覆盖
    f'--distpath={os.path.join(current_dir, "dist")}',  # 输出目录
    f'--workpath={os.path.join(current_dir, "build")}',  # 工作目录
    '--hidden-import=pandas',
    '--hidden-import=openpyxl',
    '--hidden-import=PyQt6',
    '--hidden-import=requests',
    '--debug=all',
    '--manifest=manifest.xml',
    # 添加版本信息
    '--version-file=version.txt',
    # 添加 UAC 管理员权限请求
    '--uac-admin',
]

# 如果有图标文件，添加图标
if os.path.exists('app.ico'):
    options.append('--icon=app.ico')

# 如果有说明文档，添加说明文档
if os.path.exists('README.txt'):
    options.append('--add-data=README.txt;.')

# 根据操作系统添加特定选项
if sys.platform.startswith('win'):
    options.extend([
        '--runtime-tmpdir=.',
        '--disable-windowed-traceback',
    ])

# 运行打包命令
PyInstaller.__main__.run(options) 